package com.senjoeson.wanandroid.wrapper;

import com.senjoeson.wanandroid.utils.ALog;

import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;

/**
 * @author senjoeson
 * @date 2018/4/4
 * @finish 常规获取数据的观察者类
 * 抽取一个基本类,
 * */

public abstract class MyBaseListObserver<T> implements Observer<T> {

    private Disposable mDisposable;

    @Override
    public void onSubscribe(Disposable d) {
        mDisposable = d;
    }

    @Override
    public void onNext(T t) {
        onDoSomeThing(t);
    }

    @Override
    public void onError(Throwable e) {
        ALog.d(e.getMessage());
    }

    @Override
    public void onComplete() {
        onFinished();
    }

    /**
     * 需要进行什么操作
     *
     * @param t
     */
    protected abstract void onDoSomeThing(T t);

    /**
     * 访问完成需要进行的操作
     */
    protected abstract void onFinished();
}
